package com.explorati.design_pattern.behavior.mediator.example;

import java.util.ArrayList;
import java.util.List;

/**
 * 具体同事(Concrete Colleague)角色：该角色实现抽象同事类，每一个具体同事类都清楚自己在小范围内的行为， ，而不知道大范围内的目的。
 * 
 * @author explorati
 *
 */
public class MarriageAgencyImpl implements MarriageAgency {

	List<Man> men = new ArrayList<Man>();// 男会员
	List<Woman> women = new ArrayList<Woman>();// 女会员

	@Override
	public void pair(Person person) {
		if (person.sex == Sex.MALE) {
			for (Woman w : women)
				if (w.age == person.requestAge) {
					System.out.println(person.name + "和" + w.name + "配对成功");
					return;
				}
		} else if (person.sex == Sex.FEMALE) {
			for (Man m : men) {
				if (m.age == person.requestAge) {
					System.out.println(person.name + "和" + m.name + " 配对成功");
					return;
				}
			}
		}
		System.out.println("没有为" + person.name + "找到合适的对象");
	}

	@Override
	public void register(Person person) {
		if (person.sex == Sex.MALE)
			men.add((Man) person);
		else if (person.sex == Sex.FEMALE)
			women.add((Woman) person);
	}

}
